/**
 * @author [siwi]
 * @email [siwi@siwi.me]
 * @create date 2017-08-19 03:24:28
 * @modify date 2017-08-19 03:24:28
 * @desc [读取json 文件内容]
*/
const fs = require('fs')
const path = require('path')

class Json {
    constructor() {
    
    }
    
    /**
     * 读取json文件内容
     * @param {*} json 
     */
    async getJson(json) {
        let check = fs.existsSync(json)
        if (check) {
            let file_ext = path.extname(json)
            if (file_ext != '.json') {
                return []
            }
            let value = fs.readFileSync(json, {encoding: 'utf-8'})
            return JSON.parse(value)
        } else {
            return []
        }
    }

    /**
     * 读取文件夹下json内容 文件名为key 内容为value
     * @param {文件将} dir 
     */
    async getDirJson(dir) {
        let check =  fs.existsSync(dir);
        if (!check) {
            return [];
        }
        // 获取文件
        let files = fs.readdirSync(dir)
        let content = []
        for (let file in files) {
            let file_path = `${dir}/${files[file]}`
            // 跳过非json文件
            let file_ext = path.extname(file_path)
            if (file_ext != '.json') {
                continue;
            }
            let key = path.basename(file_path, '.json')
            let value = fs.readFileSync(file_path, {encoding: 'utf-8'})
            content[key] = JSON.parse(value)
        }
        return content
    }
}

module.exports = new Json()